package com.nut.course.config;

import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
import me.chanjar.weixin.cp.config.WxCpConfigStorage;
import me.chanjar.weixin.cp.config.WxCpTpConfigStorage;
import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl;
import me.chanjar.weixin.cp.config.impl.WxCpTpDefaultConfigImpl;
import me.chanjar.weixin.cp.tp.service.WxCpTpService;
import me.chanjar.weixin.cp.tp.service.impl.WxCpTpServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class WxConfig {

    @Autowired
    private WxProperties properties;

    @Bean
    public WxCpConfigStorage wxCpConfigStorage() {
        WxCpDefaultConfigImpl config = new WxCpDefaultConfigImpl();
        config.setCorpId(properties.getCorpId());
        config.setCorpSecret(properties.getCorpSecret());
        config.setAgentId(properties.getAgentId());
        return config;
    }

    @Bean
    public WxCpService wxCpService(WxCpConfigStorage config) {
        WxCpService wxService = new WxCpServiceImpl();
        wxService.setWxCpConfigStorage(config);
        return wxService;
    }

//    @Bean
//    public WxCpTpConfigStorage wxCpTpConfigStorage() {
//
//        WxCpTpDefaultConfigImpl config = new WxCpTpDefaultConfigImpl();
//        config.setCorpId(properties.getCorpId());
//        config.setCorpSecret(properties.getCorpSecret());
//        config.setAgentId(properties.getAgentId());
//        return config;
//    }
//
//    @Bean
//    public WxCpTpService wxCpTpService(WxCpTpConfigStorage config) {
//        WxCpTpService service = new WxCpTpServiceImpl();
//        service.setWxCpTpConfigStorage(config);
//        return service;
//    }

}
